隨著最近越看越多網頁程式碼,就看到越來越多種CSS觀念與技巧,包含昨天的BEM命名以及今天要介紹的CSS選擇器,雖然這應該是很早就要介紹的,但是後來才接觸到複合選擇器,想說認識完整一點再開始記錄,也許以後會很常用到
CSS選擇器用來選擇和改變 HTML 文檔中元素的樣式。不同的選擇器提供不同方法來選擇單個或多個元素,並對其進行樣式應用
p {
color: blue;
}
這段代碼將所有 元素的文字顏色設置為藍色
.intro {
font-size: 16px;
}
此處所有擁有 class="intro" 的元素會設定字級16px
#main-title {
font-weight: bold;
}
這段代碼將 ID 為 main-title 的元素加粗。
h1, h2, h3 {
margin-bottom: 10px;
}
此處 h1、h2 和 h3 元素都會有相同的底部邊距
div p {
color: red;
}
這將會選擇所有位於 div 內部的 p 元素,並將它們的文字顏色設為紅色
div > p {
color: green;
}
這段代碼只會選擇 div 下一層的 p 元素,並將其文字設為綠色
h1 + p {
font-style: italic;
}
這段代碼將緊接著 h1 之後的 p 元素設置為斜體
div ~ p{
color:orange;
}
這段代碼將 div 元素之後的所有兄弟 p 元素的文字顏色設為橘色
* {
margin: 0;
padding: 0;
}
這段代碼會將所有元素的外邊距和內邊距設為 0
input[type="text"] {
border: 1px solid black;
}
這會選擇所有 type="text" 的 input 元素,並應用邊框樣式。
a:hover {
color: orange;
}
這段代碼將滑鼠懸停在鏈接()上的顏色變為橘色
CSS具有繼承與覆蓋的功能,可以透過撰寫相同屬性來蓋掉之前的效果,至於為什麼會被蓋掉就是牽涉到選擇器權重,權重相同的情況下後面寫的CSS會蓋掉前面的,而權重對應如下
- HTML標籤(div):1分
- Class標籤(.example):10分
- ID標籤(#example):100分
- 直接寫在標籤裡面(style=""):1000分
- 在CSS裡寫!important:10000分
CSS選擇器參考文章
https://selflearningsuccess.com/css-combinators/